package com.hunan.api.catv.entity.dto;

import com.google.gson.annotations.SerializedName;
import lombok.Data;

import java.util.List;

/**
 * @author jiang zhuan
 * @version 1.0
 * @description 描述
 * @date 2021/10/12 0012
 * @package com.hunan.api.catv.entity.dto
 * @company 湖南有线
 */
@Data
public class TvQueryTimeLimitInfo {

    /**
     * 访问令牌，登录用户唯一标识，登录时由服务器返回
     */
    private String accesstoken;

    /**
     * 限制用户
     */
    private Integer userid;


    /**
     *开启或者关闭限制。0：关闭限制，1：开启
     * 时长限制， 2：开启时段限制, 3：开启集数
     * 限制
     */
    @SerializedName("switch")
    private Integer switchFlag;

    /**
     * 单位分钟。 switch=1 时必传
     */
    private Integer duration;


    /**
     * 可观看集数.switch=3 时必传
     */
    private Integer episodesnums;

    /**
     * 工作时段  switch=2 时必传
     */
    private List<TvWorkPeriod> workperiod;

    @Data
    private class TvWorkPeriod {


        /**
         * 标识一周中的哪几天使用时段限制。每天相
         * 同时间段则取值为：[1,2,3,4,5,6,7]
         */
        private Integer[] days;
        /**
         * 受限时段
         */

        private List<DayPeriod> periods;

    }

    @Data
    private class DayPeriod {
        /**
         * 开始时间，为相对于 0 点 0 分的时间，单位
         * 分钟，取值范围[0,1440]，如设置的起始时
         * 间为 00:20，则 starttime 取值 20。默认取
         * 值 0
         */
        private Integer starttime;

        /**
         * 结束时间，为相对于 0 点 0 分的时间，单位
         * 分钟，取值范围[0,1440]。默认取值 1440
         */
        private Integer endtime;
    }
}

